﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SRD.Model.SRD.DTO;
using SRD.Model.SRD.Util;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;
using System.Configuration;
namespace SRD.Model.SRD.DAO
{
    public class CargoDAO
    {
        public CargoDAO()
        {
                        
        }

        DataClassesSRDDataContext bancoDados = new DataClassesSRDDataContext();

        public IQueryable findByName(string nomeCargo)
        {
            var resultado = from e in bancoDados.CARGOs
                            where e.NM_CARGO.Contains(nomeCargo)
                            select e;
            return resultado;

        }

        public CARGO findByID(CARGO cargo)
        {
            var resultado = (from e in bancoDados.CARGOs
                            where e.CARGO_ID == cargo.CARGO_ID
                            select e).First();

            return resultado;
        }

        public IQueryable findAll()
        {
            var resultado = from e in bancoDados.CARGOs
                            select e;

            return resultado;
        }

        public IQueryable findCargoByEmpresaId(Int32 empresa)
        {
            var resultado = (from c in bancoDados.CARGOs
                             where c.EMPRESA_ID == empresa
                             select c);

            return resultado;
        }

        public string insert(CARGO cargo)
        {
            try
            {
                bancoDados.CARGOs.InsertOnSubmit(cargo);
                bancoDados.SubmitChanges();
                return "Inclusão realizada com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro na inclusão: " + o.Message;
            }
        }

        public string update(CARGO cargo)
        {
            try
            {
                var cargoExistente = (from e in bancoDados.CARGOs
                                        where e.CARGO_ID == cargo.CARGO_ID
                                        select e).First();
                cargoExistente.NM_CARGO = cargo.NM_CARGO;
                cargoExistente.ATIVO = cargo.ATIVO;
                bancoDados.SubmitChanges();
                return "Atualização realizada com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro na atualização: " + o.Message;
            }
        }

        public string delete(CARGO cargo)
        {
            try
            {
                var empresaExitente = (from e in bancoDados.CARGOs
                                       where e.CARGO_ID == cargo.CARGO_ID
                                       select e).First();
                bancoDados.CARGOs.DeleteOnSubmit(empresaExitente);
                bancoDados.SubmitChanges();
                return "Registro excluído com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro ao excluir: " + o.Message;
            }
        }
    }
}